The present invention relates to the control of disc storage systems for digital computers, particularly to a maximum likelihood servo detector for detecting codewords of an error correcting servo code.
In computer storage systems (such as optical and magnetic disc drives) binary data are typically recorded on a disc storage medium as blocks or sectors 15 of information in radially spaced, concentric data tracks 13 as shown in FIG. 1A. During read and write operations, a transducer connected to a load beam actuated by a voice coil motor is positioned over the desired track by a servo controller (not shown). First, the servo controller performs a seek operation to move the transducer radially over the disc according to a predetermined velocity trajectory until the transducer reaches the desired data track. Once at the desired track, the servo controller performs a tracking operation by making fine position adjustments to maintain the transducer over the centerline of the track while the data is being recorded or retrieved.
The servo controller is a closed loop feedback system that uses the target data track and the transducer states (position, velocity, acceleration, etc.) to generate the control signals. The transducer position relative to the disc storage medium is typically determined using either a dedicated servo disc in a disc array, or using embedded servo sectors. In the latter embodiment, servo sectors are pre-recorded at periodic intervals around the circumference of the disc in each data track to form xe2x80x9cservo wedgesxe2x80x9d or xe2x80x9cservo spokesxe2x80x9d 17 that extend from the inner diameter to outer diameter tracks as shown in FIG. 1A. In this manner, as the disc spins underneath the transducer, the servo sectors 17 provide a periodic update of the transducer""s current radial and centerline location.
A typical servo sector 17, as shown in FIG. 1B, comprises a preamble 68, a sync mark 70 and servo data 71. The preamble 68 allows the recording system to nominalize timing recovery and the gain of the read signal before reading the servo data 71, and the sync mark 70 allows the recording system to byte synchronize to the servo data 71 so that it can be decoded. The servo data 71 comprises a track address 73 for computing a coarse radial position of the transducer during seeks, and servo bursts 75 for computing a fine centerline position of the transducer during tracking. The track addresses are recorded phase coherent throughout the servo wedges meaning that they occur in the same location within the servo wedge from the outer diameter to the inner diameter track. Furthermore, the track address are typically recorded in a manner that ensures accurate detection during seek operations when the head flies across adjacent tracks as it moves radially over the disc. In other words, the track addresses are encoded using a servo code which ensures that the ambiguity caused by intertrack interference will be resolved in favor of one or the other adjacent track addresses.
Conventionally, the track addresses are first encoded into a Gray code, a code wherein adjacent codewords are different in only one bit (in NRZ). The Gray codewords are then written to the disc in a manner that ensures the flux patterns of adjacent track addresses are the same except where they differ by the single bit in the Gray codeword (if the flux patterns are the same, there is no intertrack interference). Two well known methods for modulating the Gray codewords to achieve this effect are dibit modulation, shown in FIG. 3A, and pulse-position modulation, shown in FIG. 3B.
In dibit modulation, a Gray code xe2x80x9c1xe2x80x9d bit modulates a RLL d=1 dibit transition (xe2x80x9c1010xe2x80x9d in NRZI) and a Gray code xe2x80x9c0xe2x80x9d bit modulates no dibit transition (xe2x80x9c0000xe2x80x9d in NRZI). In FIG. 3A, for example, three bits of binary track address are encoded into three bits of Gray code, where each xe2x80x9c1xe2x80x9d bit of the Gray code modulates a dibit transition and each xe2x80x9c0xe2x80x9d bit no dibit transition. Thus, the overall code rate of the dibit servo code is xc2xc (i.e., 1 bit of binary data is encoded into 4 bits of channel data). Notice that the flux patterns of adjacent track addresses in FIG. 3A are the same except at the location where they differ by one bit in the Gray code. Therefore, there is no intertrack interference in the read signal, other than at the changing Gray code bit, even when the transducer is in-between tracks during a seek operation. The ambiguity in the Gray code bit will be resolved in favor of one or the other adjacent track addresses.
In pulse-position modulation, a Gray code xe2x80x9c1xe2x80x9d bit modulates a NRZI sequence of xe2x80x9c10xe2x80x9d and a Gray code xe2x80x9c0xe2x80x9d bit modulates a NRZI sequence of xe2x80x9c01xe2x80x9d. To reduce the undesirable effect of non-linear transition shift similar to the above RLL d=1 dibit modulation, a NRZI xe2x80x9c0xe2x80x9d bit is inserted between the NRZI sequences such that a Gray code xe2x80x9c1xe2x80x9d bit modulates a NRZI sequence of xe2x80x9c100xe2x80x9d and a Gray code xe2x80x9c0xe2x80x9d bit modulates a NRZI sequence of xe2x80x9c010xe2x80x9d as illustrated in FIG. 3B. Notice again that the resulting flux patterns of adjacent track addresses are the same except at the location of the changing Gray code bit. The advantage of the pulse-position modulation code over the dibit modulation code is a higher code rate (rate ⅓ as compared to rate xc2xc).
Although encoding the track addresses using a conventional Gray code together with dibit or pulse-position modulation enables accurate detection of the track addresses during a seek operation, a conventional Gray code does not protect against detection errors when noise in the channel, other than intertrack interference, corrupts the read signal. In other words, a conventional Gray code does not provide any distance enhancing properties typically found in a conventional error correction code (ECC), such as a Hamming code, because the minimum distance between the codewords of a Gray code is only one bit. Conventional ECC codes have not been employed to encode servo track addresses because it is not possible to arrange the ECC codewords to achieve exactly the same effect as a Gray code (i.e. where adjacent ECC codewords differ in only one bit).
The above referenced U.S. co-pending patent application entitled xe2x80x9cA SERVO DECODER FOR DECODING AN ERROR CORRECTING SERVO CODE RECORDED ON A DISC STORAGE MEDIUMxe2x80x9d discloses an ECC servo code for encoding the track addresses in a manner that achieves the same effect as a conventional Gray code, in addition to an error correction distance enhancement, particularly while tracking the centerline of a data track. An enabling aspect of that patent application is to encode the track address using a servo code having a particular minimum distance dmin between codewords, and then to arrange the codewords such that adjacent codewords differ by dmin. This is understood with reference to FIG. 4A which shows three servo codewords in a two-dimensional space, where each codeword is enclosed by a circle of radius dmin/2. Codewords detected within one of the circles are decoded into the codeword at the center of the circle, thereby providing an error correction capability of dmin/2.
The servo code in the above co-pending patent application also achieves the same effect as a conventional Gray code during a seek operation. Codewords detected when the transducer is in-between tracks will decode into one or the other adjacent track addresses. For example, codewords detected in the signal space represented as a linear segment between C1 and C2 in FIG. 4A will be decoded into either C1 or C2 because they fall within either of the corresponding circles. However, if the signal space near the center of the linear segment is too close to the decision boundary of another valid codeword, such as C3, then noise in the channel other than intertrack interference may cause a codeword to be detected in the shaded area which would decode erroneously into C3.
It is, therefore, an object of the present invention to provide an error correcting servo code with a minimum distance of dmin between valid codewords, thereby providing an error correction capability of dmin/2 during tracking. A further object of the present invention is to provide a servo code with a minimum distance of {circumflex over ( )}dmin from the signal space between adjacent codewords to the decision boundaries of all other valid codewords, thereby providing an error correction capability of {circumflex over ( )}dmin when the transducer is in-between tracks during a seek operation.
A disc storage system servo code detector is disclosed that provides enhanced error correction capabilities during both tracking and seeking by increasing a minimum distance din between valid codewords and by increasing a minimum distance {circumflex over ( )}dmin from the signal space between adjacent codewords to the decision boundaries of all other valid codewords. The signal space with respect to the minimum distances is not a limiting aspect of the invention; however, in the preferred embodiment the codewords are selected to maximize the minimum distances in Euclidean space. Thus, the read signal is sampled and equalized according to a partial response spectrum, and maximum likelihood detection is employed to detect the servo codewords in Euclidean space. The code rate is selected according to certain design criteria such as the amount of error correction desired, the data density, and the cost and complexity of the encoder/decoder circuitry. After selecting the code rate and number of bits per codeword, a computer search is carried out to find a subset of codewords large enough to encode the track addresses while providing large minimum distance values for dmin and {circumflex over ( )}dmin.